package edu.zut.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

@WebServlet(name = "ShowTimeServlet2", value = "/showTime2")
public class ShowTimeServlet2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /**
         * 记录显示用户上次访问当前应用的时间： 时间需要在用户的不同请求之间共享  cookie
         * 如果用户是第一次发起请求访问：
         *  将当前时间记录下来
         * 如果用户不是第一次访问：
         *  获取上次保存的时间并更新访问时间
         */

        //获取当前请求中的所有cookie
        Cookie[] cookies = request.getCookies();
        //设定一个标志：代表lastTime这个cookie是否存在
        boolean flag = true;
        //非空校验
        if (cookies != null || cookies.length != 0){

            for (Cookie cookie : cookies) {
                //判断当前是否存在保存有上次访问时间的cookie
                if (cookie.getName().equals("lastTime")){
                    //获取上次访问时间
                    String lastTime = cookie.getValue();
                    System.out.println("lastTime = " + lastTime);
                    //更新访问时间
                    Date date = new Date();
                    lastTime =
                            new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss").format(date);
                    cookie.setValue(lastTime);
                    flag = false;
                    //将当前cookie重新返回给浏览器
                    response.addCookie(cookie);
                    break;
                }
            }
        }
        if (cookies == null || cookies.length == 0 || flag){

            Date date = new Date();
            String nowTime =
                    new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss").format(date);
            Cookie cookie = new Cookie("lastTime", nowTime);
            System.out.println("用户首次访问" + nowTime);
            //将cookie返回给浏览器
            response.addCookie(cookie);
        }





    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}
